package com.example.demo.core;

import com.github.pagehelper.PageInfo;
import lombok.Data;

import java.io.Serializable;
import java.util.List;

/**
 * 数据分页类
 *
 * @param <T> 列表数据
 * @author 叮当猫的百宝箱
 * @since 1.0
 */
@Data
public class Page<T> implements Serializable {

    private static final long serialVersionUID = 1992271892635305314L;

    /**
     * 当前页码
     */
    private Integer page;

    /**
     * 分页条数
     */
    private Integer pageSize;

    /**
     * 总页数
     */
    private Integer totalPage;

    /**
     * 总记录数
     */
    private Long total;

    /**
     * 分页数据
     */
    private List<T> list;


    /**
     * 将PageHelper分页后的list转为分页信息
     *
     * @param pageInfo PageHelper的分页对象
     * @param <T>      列表数据
     * @return 分页数据
     */
    public static <T> Page<T> restPage(PageInfo<T> pageInfo) {
        Page<T> result = new Page<>();
        result.setPage(pageInfo.getPageNum());
        result.setPageSize(pageInfo.getPageSize());
        result.setTotalPage(pageInfo.getPages());
        result.setTotal(pageInfo.getTotal());
        result.setList(pageInfo.getList());
        return result;
    }
}
